<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 数组 -> 一般用于存放多个相同类型的数据 (JS弱类型的语言 -> 不同类型也可以)
    // ["张三", 55, 66, 77]  存放不同类型也可以 -> 对数据的描述不够详细

    // var zhang = {
    //     name: "张三",
    //     chinese: 55,
    //     math: 66,
    //     english: 77,
    // }

    // var list = [
    //     ["张三", 55, 66, 77],
    //     ["李四", 78, 96, 82],
    //     ["王五", 70, 82, 94],
    // ]



    // 对象 -> 对一个或一类事物特征(属性)和行为(方法)的描述

    // 注意:
    // 对象是以键值对(key:value)的形式存在的  key(键名/属性名)  value(键名/属性值)
    // 对象的键名是字符串类型(JS中可以省略键名的引号),键值可以是任意类型的数据
    // 常见叫法    属性(对象的键值->非函数)    方法(对象的键值->函数)

    // 如何创建对象
    // 1. 字面量创建 -> 快捷创建

    // var zhang = {
    //     "name": "张三",
    //     "chinese": 55,
    //     "math": 66,
    //     "english": 77,
    // }
    var obj = {}; //空对象
    var zhang = {
        name: "张三", //属性
        age: 18,
        isStudy: true,
        money: null,
        a: undefined,
        hobby: ["sing", "dance", "rap"],
        grade: {
            "name": "张三",
            "chinese": 55,
            "math": 66,
            "english": 77,
        },
        say: function () { //函数
            console.log("hello");
        }
    }


    // (2) 构造函数创建
    var obj = new Object();
    var zhang = new Object({
        name: "张三",
        age: 18,
        isStudy: true,
        money: null,
        a: undefined,
        hobby: ["sing", "dance", "rap"],
        grade: {
            "name": "张三",
            "chinese": 55,
            "math": 66,
            "english": 77,
        },
        say: function () {
            console.log("hello");
        }
    });
    console.log(obj);
    console.log(zhang);




</script>

</html>